package common.quickvalid.validators;

import java.util.Map;

/**
 * 单个表单域验证,基于正则表达式验证的基类.
 * @author beansoft
 */
public abstract class BaseRegexValidator extends BaseValidator {

	public String doValidation(String fieldName, String fieldDescription,
			Map<String, Object> params, String... args) {
		super.setParams(params);		
		String value = getValue(fieldName);
		
		// 非空时方进行验证
		if(value != null && value.length() > 0) {
			if(!value.matches(getRegEx())) {
				return fieldDescription + getMessage();
			}
		}
		return null;
	}
	
	/**
	 * 返回验证消息.
	 * 子类需实现.
	 * @return 验证结果消息, 为空时表示没有错误
	 */
	public abstract String getMessage();
	
	/**
	 * 获取验证规则.
	 * 子类需实现.
	 * @return 正则表达式
	 */
	public abstract String getRegEx();

}